SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TTCOPA_ANUL_D01]  
/*-------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                --*/    
/*---Cliente              : OFISIS                 --*/    
/*---Sistema              : Tesoreria                  --*/    
/*---M¸dulo               : Empresa                    --*/    
/*---Programa             : Anulaci©n Documento P.     --*/    
/*---Script               : ttdocp_a.sql               --*/    
/*---Nombre SP            : SP_TTCOPA_ANUL_D01_PPTO         --*/    
/*---Desarrollado por     : Javier Flores A.           --*/    
/*---Fecha Creaci¸n       : 05/08/1999                 --*/    
/*---Base Datos           : Microsoft Sql Server       --*/    
/*---Versi¸n              : 7.0                        --*/    
/*---Invoca a SP          :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Modificado 1 por     :                            --*/    
/*---Fecha Modificaci¸n   :                            --*/     
/*---Detalle Modificaci¸n :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Drop Proc SP_TTCOPA_ANUL_D01                      --*/    
/*---Grant EXecute on SP_TTCOPA_ANUL_D01 to public	--*/     
/*---SP_TTCOPA_ANUL_D01_PPTO                           --*/    
/*-------------------------------------------------------*/    
 @ISCO_EMPR       TD_VC_002,     
 @ISCO_USUA_MODI  TD_VC_008_USUA,    
 @ISCO_PROV       TD_VC_020,    
 @ISCO_TIPO_DOCU  TD_VC_003,    
 @ISNU_DOCU_PROV  TD_VC_020,    
 @ISCO_TIPO_OPER  TD_VC_003,    
 @IDFE_ANUL       TD_DT_001
	As
Declare    
    @VSNU_DOCU_PROV  TD_VC_020,    
    @VSCO_TIPO_EGAN  TD_VC_003,       
    @VSST_GEAS_ANUL  TD_VC_001,    
    @VSCO_TIPO_OPE1  TD_VC_003,    
    @CNNU_CUOT_DETA  TD_IN_001   
    
 Begin Tran SP_TTCOPA_ANUL_D01    
    
    Select @VSCO_TIPO_EGAN = CO_TIPO_OPEG,     
           @VSST_GEAS_ANUL = ST_GEAS_ANUL    
    From   TMPARA_TESO     
    Where  CO_EMPR = @ISCO_EMPR    
    
    If @VSST_GEAS_ANUL = 'N'    
       Select @VSCO_TIPO_OPE1 = @VSCO_TIPO_EGAN    
    Else        
      Select @VSCO_TIPO_OPE1 = @ISCO_TIPO_OPER     
    
    Update TCCOMP_PAGO  
    Set    TI_SITU = 'ANU',     
           CO_TIPO_OPER = @VSCO_TIPO_OPE1,  
           CO_USUA_MODI = @ISCO_USUA_MODI,     
    FE_USUA_MODI = GETDATE()    
    Where  CO_EMPR = @ISCO_EMPR    
    And    TI_COMP_PAGO = @ISCO_TIPO_DOCU    
    And    NU_COMP_PAGO = @ISNU_DOCU_PROV    
    
    If @@error <> 0    
       Begin    
         Rollback tran    
         Return    
       End       
   
    Insert TTCOPA_ANUL ( CO_EMPR, TI_COMP_PAGO, NU_COMP_PAGO, CO_TIPO_OPER,    
                         FE_ANUL, ST_CONT, NU_PROC, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)    
    Values ( @ISCO_EMPR, @ISCO_TIPO_DOCU, @ISNU_DOCU_PROV, @VSCO_TIPO_OPE1,    
             @IDFE_ANUL, 'N', 0, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE() )     
    
    If @@error <> 0    
       Begin    
         Rollback tran SP_TTCOPA_ANUL_D01  
         Return    
       End        
    
     Declare CU_TTCOPA_ANUL_D01_1 Cursor    
     For    
 Select T1.NU_CUOT_DETA  
 From  TDCOMP_PAGO T1  
 Where T1.CO_EMPR = @ISCO_EMPR
  
 And   T1.TI_COMP_PAGO = @ISCO_TIPO_DOCU  
 And   T1.NU_COMP_PAGO = @ISNU_DOCU_PROV  
   
     Open CU_TTCOPA_ANUL_D01_1    

     Fetch CU_TTCOPA_ANUL_D01_1 into @CNNU_CUOT_DETA  
    
     While (@@FETCH_STATUS = 0)    
     Begin    
          If (@@FETCH_STATUS < 0)    
          Begin    
             RAISERROR 20001 'FIN DE ARCHIVO'    
             Close CU_TTCOPA_ANUL_D01_1    
             Deallocate CU_TTCOPA_ANUL_D01_1    
             Rollback tran SP_TTCOPA_ANUL_D01  
             Return    
          End    
  
          Select @VSNU_DOCU_PROV = @ISNU_DOCU_PROV+'-'+ Replicate('0',3-Len(Convert(VarChar,@CNNU_CUOT_DETA)))+Convert(VarChar,@CNNU_CUOT_DETA)  
--          Exec SP_TTDOCP_ANUL_D01 @ISCO_EMPR,@ISCO_USUA_MODI,@ISCO_PROV,@ISCO_TIPO_DOCU,@VSNU_DOCU_PROV,@ISCO_TIPO_OPER,@IDFE_ANUL  
  
          Delete TDPROG_PAGO  
          Where  CO_EMPR = @ISCO_EMPR    
          And    CO_PROV = @ISCO_PROV     
          And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU    
          And    NU_DOCU_PROV = @VSNU_DOCU_PROV    
          If @@error <> 0    
          Begin  
            Rollback tran SP_TTCOPA_ANUL_D01  
            Return  
          End   
          Delete TMDOCU_PROV  
          Where  CO_EMPR = @ISCO_EMPR    
          And    CO_PROV = @ISCO_PROV     
          And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU    
          And    NU_DOCU_PROV = @VSNU_DOCU_PROV    
  
          If @@error <> 0    
          Begin  
            Rollback tran SP_TTCOPA_ANUL_D01  
            Return  
          End  
    
         Fetch CU_TTCOPA_ANUL_D01_1 into @CNNU_CUOT_DETA  
    
     End    
  close CU_TTCOPA_ANUL_D01_1    
  deallocate CU_TTCOPA_ANUL_D01_1    
  
    
    
Commit Tran SP_TTCOPA_ANUL_D01  
    
/*-------------------------- Fin ------------------------------*/


GO
